/**
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. <br/>
 * 描述: TODO <br/>
 *
 * @author framework generator
 * @date 2022年02月15日
 * @version 2.0
 */
package com.icinfo.cloud.provider.punish.approval.mapper;

import com.icinfo.cloud.provider.punish.approval.dto.AuditQueryPageDto;
import com.icinfo.cloud.provider.punish.approval.dto.MemberUserVo;
import com.icinfo.cloud.provider.punish.approval.dto.PersonalTaskDto;
import com.icinfo.cloud.provider.punish.approval.dto.WorkbenchStatisticsDto;
import com.icinfo.cloud.provider.punish.approval.vo.*;
import com.icinfo.cloud.provider.punish.approval.model.CaseApprovalWaitRecord;
import com.icinfo.cloud.provider.punish.approval.vo.AuditItemVo;
import com.icinfo.framework.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 描述: 案件文书待审批记录表 case_approval_wait_record 对应的Mapper接口.<br>
 *
 * @author framework generator
 * @date 2022年02月15日
 */
public interface CaseApprovalWaitRecordMapper extends Mapper<CaseApprovalWaitRecord> {

    /**
     * 待审批列表
     * @param auditQueryPageDto
     * @return
     */
    List<AuditInfoListVo> getWaitList(AuditQueryPageDto auditQueryPageDto);

    /**
     * 待审批列表（联合法制审核）
     * @param auditQueryPageDto
     * @return
     */
    List<AuditInfoListVo> getWaitListCenter(AuditQueryPageDto auditQueryPageDto);

    /**
     * 查询待审批页 每个颜色时效案件数量
     * @param auditQueryPageDto
     * @return
     */
    WaitPageEachColorNumVo getEachColorNum(AuditQueryPageDto auditQueryPageDto);


    /**
     * 查询待审批页 每个颜色时效案件数量 （联合法制审核）
     * @param auditQueryPageDto
     * @return
     */
    WaitPageEachColorNumVo getEachColorNumCenter(AuditQueryPageDto auditQueryPageDto);

    /**
     * 查询待审批列表审批事项（文书种类）
     * @param
     * @return
     */
    List<AuditItemVo> getAuditItemList();
    /**
     * 根据机构角色查询用户
     * @author liyafeng
     * @date 2022/9/3
      * @param paramMap
     * @return {@link List< MemberUserVo>}
     */
    List<MemberUserVo> selectMemberUserVoList(Map<String, Object> paramMap);
    /**
     * 根据机构角色查询用户-三级审批无需执法人员
     * @author liyafeng
     * @date 2022/9/6
      * @param paramMap
     * @return {@link List< MemberUserVo>}
     */
    List<MemberUserVo> selectMemberUserVoListNoAgent(Map<String, Object> paramMap);
    /**
     * 待审批列表,增加类型
     * @param auditQueryPageDto
     * @return
     */
    List<AuditInfoListVo> selectWaitAuditList(AuditQueryPageDto auditQueryPageDto);
    /**
     * 待审批列表,颜色数量查询
     * @param auditQueryPageDto
     * @return
     */
    WaitPageEachColorNumVo selectApprovedColorNum(AuditQueryPageDto auditQueryPageDto);

    /**
     * 获取工作台统计数据
     * @param dto
     * @return
     */
    WorkbenchStatisticsVo getWorkbenchStatistics(WorkbenchStatisticsDto dto);

    List<PersonalTaskVo> getPersonalTask(PersonalTaskDto personalTaskDto);
    /**
     * 根据userid、orgcode获取系统管理员角色
     * @author liyafeng
     * @date 2023/2/1
      * @param userId
     * @param orgCode
     * @return {@link int}
     */
    int selectMemberUserRoleNum(@Param("userId") String userId,@Param("orgCode") String orgCode);
}